#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QPixmap>
#include <QImage>
#include <QPicture>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

//    //Pixmap绘图工具  专门为平台做了显示的优化
//    QPixmap pix(300,300);

//    //填充颜色
//    pix.fill(Qt::white);  //默认黑色背景

//    //声明画家
//    QPainter painter(&pix);
//    painter.setPen(Qt::green);
//    painter.drawEllipse(QPoint(150,150),100,100);
//    pix.save("C:\\Users\\DELL\\Desktop\\test\\pix.png");


//    //QImage  作为绘图设备   可以对像素进行访问
//    QImage img(300,300,QImage::Format_RGB32);
//    img.fill(Qt::white);

//    //声明画家
//    QPainter painter(&img);
//    painter.setPen(Qt::blue);
//    painter.drawEllipse(QPoint(150,150),100,100);
//    img.save("C:\\Users\\DELL\\Desktop\\test\\img.png");


    //QPicture  作为绘图设备   可以记录并重现绘图指令
    QPicture pic;
    QPainter painter;
    painter.begin(&pic);   //开始向pic画画
    painter.setPen(Qt::cyan);
    painter.drawEllipse(QPoint(150,150),100,100);
    painter.end();  //结束画画

    pic.save("C:\\Users\\DELL\\Desktop\\test\\pic.zg");


}

 //绘图事件
void Widget::paintEvent(QPaintEvent *)
{
//    QPainter painter(this);
//    //利用qimage对像素进行修改
//    QImage img;
//    img.load(":/image/1307342.gif");
//    //修改像素点
//    for( int i = 10 ; i < 30 ; i++)
//        for( int j = 10 ; j <30 ; j++ )
//        {
//            QRgb value = qRgb(255,0,0);
//            img.setPixel(i,j,value);
//        }


//    painter.drawImage(0,0,img);


    QPainter painter(this);
    //重现picture的绘图指令
    QPicture pic;
    pic.load("C:\\Users\\DELL\\Desktop\\test\\pic.zg");
    painter.drawPicture(0,0,pic);
}

Widget::~Widget()
{
    delete ui;
}


